Blurrr Network Service Discovery  1.0.0
BlurrrNetworkServiceDiscovery.h
Go to the documentation of this file.
1 #ifndef BLURRR_ZEROCONF_H
2 #define BLURRR_ZEROCONF_H
3 
733 #ifdef __cplusplus
734 extern "C" {
735 #endif
736 
737 
738 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
739 
741  /* Note: For Doxygen to produce clean output, you should set the
742  * PREDEFINED option to remove DECLSPEC, CALLCONVENTION, and
743  * the DOXYGEN_SHOULD_IGNORE_THIS blocks.
744  * PREDEFINED = DOXYGEN_SHOULD_IGNORE_THIS=1 DECLSPEC= CALLCONVENTION=
745  */
746 
749 #ifdef BLURRRZEROCONF_BUILD_LIBRARY
750  #ifdef WIN32
751  #define BLURRRZEROCONF_EXPORT __declspec(dllexport)
752  #elif defined(__GNUC__) && __GNUC__ >= 4
753  #define BLURRRZEROCONF_EXPORT __attribute__ ((visibility("default")))
754  #else
755  #define BLURRRZEROCONF_EXPORT
756  #endif
757 #else
758  #define BLURRRZEROCONF_EXPORT
759 #endif /* BLURRRZEROCONF_BUILD_LIBRARY */
760 
761 
762  /*
763  Nullability qualifiers: currently only supported by Clang.
764  */
765  #if defined(__clang__)
766  #if __has_feature(nullability)
767  #define BNSD_NONNULL _Nonnull
768  #define BNSD_NULLABLE _Nullable
769  #else
770  #define BNSD_NONNULL
771  #define BNSD_NULLABLE
772  #endif
773  #else
774  #define BNSD_NONNULL
775  #define BNSD_NULLABLE
776  #endif
777 
778 
779 
781 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
782 
783 /* Visual Studio 2013 *finally* has <stdint.h> */
784 #include <stdint.h>
785 #include <stdbool.h>
786 #include <stddef.h>
787 
788 
792 enum
793 {
816  BNSD_ERR_OS = -19,
865  BNSD_ERR_MAX = -62 // Always update when adding more
866 };
867 
869 enum
870 {
872 };
873 
875 enum
876 {
878 };
879 
880 
881 struct BNSD_Registration;
882 struct BNSD_Discovery;
883 struct BNSD_Resolve;
884 
887 typedef struct BNSD_Resolve BNSD_Resolve;
888 
898 BLURRRZEROCONF_EXPORT bool BNSD_IsSupported(void);
899 
907 BLURRRZEROCONF_EXPORT bool BNSD_Init(void* BNSD_NULLABLE platform_init_object);
911 BLURRRZEROCONF_EXPORT void BNSD_Quit(void);
912 
928 BLURRRZEROCONF_EXPORT const char* BNSD_NONNULL BNSD_GetBackendDescription(void);
929 
935 BLURRRZEROCONF_EXPORT char* BNSD_NONNULL BNSD_CreateDeviceNameString(void);
940 BLURRRZEROCONF_EXPORT void BNSD_FreeString(char* BNSD_NULLABLE str);
948 BLURRRZEROCONF_EXPORT size_t BNSD_GetDeviceNameString(char* BNSD_NULLABLE string_array, size_t array_length);
949 
950 
951 
952 
987 typedef void (*BNSD_RegisterCallback)(struct BNSD_Registration* BNSD_NONNULL zeroconf_registration, const char* BNSD_NONNULL service_name, const char* BNSD_NONNULL service_type, const char* BNSD_NONNULL domain, int32_t blurrr_error_code, uint32_t flags, void* BNSD_NULLABLE user_data);
988 
1028 typedef void (*BNSD_DiscoveryCallback)(struct BNSD_Discovery* BNSD_NONNULL zeroconf_discovery, const char* BNSD_NONNULL service_name, const char* BNSD_NONNULL service_type, const char* BNSD_NONNULL domain, bool is_added, int32_t blurrr_error_code, uint32_t flags, int32_t interface_index, void* BNSD_NULLABLE user_data);
1029 
1083 typedef void (*BNSD_ResolveCallback)(struct BNSD_Resolve* BNSD_NONNULL zeroconf_resolve, const char* BNSD_NONNULL service_name, const char* BNSD_NONNULL service_type, const char* BNSD_NONNULL domain, const char* BNSD_NONNULL full_name, const char* BNSD_NONNULL host_target, uint16_t port, const char* BNSD_NULLABLE txt_record, uint16_t txt_record_length, int32_t blurrr_error_code, uint32_t flags, int32_t interface_index, void* BNSD_NULLABLE user_data);
1084 
1085 
1109 BLURRRZEROCONF_EXPORT struct BNSD_Registration* BNSD_NULLABLE BNSD_RegisterService(const char* BNSD_NULLABLE service_name, const char* BNSD_NONNULL service_type, const char* BNSD_NULLABLE domain, const char* BNSD_NULLABLE host_name, uint16_t port, uint32_t flags, const char* BNSD_NULLABLE txt_record, uint16_t txt_record_length, BNSD_RegisterCallback BNSD_NONNULL callback_function, void* BNSD_NULLABLE user_data);
1116 BLURRRZEROCONF_EXPORT void BNSD_UnregisterService(struct BNSD_Registration* BNSD_NULLABLE registration_service);
1117 
1136 BLURRRZEROCONF_EXPORT struct BNSD_Discovery* BNSD_NULLABLE BNSD_StartDiscovery(const char* BNSD_NONNULL service_type, const char* BNSD_NULLABLE domain, uint32_t flags, BNSD_DiscoveryCallback BNSD_NONNULL callback_function, void* BNSD_NULLABLE user_data);
1143 BLURRRZEROCONF_EXPORT void BNSD_StopDiscovery(struct BNSD_Discovery* BNSD_NULLABLE discovery_service);
1144 
1167 BLURRRZEROCONF_EXPORT struct BNSD_Resolve* BNSD_NULLABLE BNSD_StartResolve(const char* BNSD_NONNULL service_name, const char* BNSD_NONNULL service_type, const char* BNSD_NULLABLE domain, uint32_t flags, uint32_t time_out, BNSD_ResolveCallback BNSD_NONNULL callback_function, void* BNSD_NULLABLE user_data);
1174 BLURRRZEROCONF_EXPORT void BNSD_StopResolve(struct BNSD_Resolve* BNSD_NULLABLE resolve_service);
1175 
1176 
1177 
1178 
1179 #ifdef __cplusplus
1180 }
1181 #endif
1182 
1183 #endif /* BLURRR_ZEROCONF_H */
1184 
EXPERIMENTAL: Include Bluetooth.
Definition: BlurrrNetworkServiceDiscovery.h:877
Invalid protocol.
Definition: BlurrrNetworkServiceDiscovery.h:826
Daemon not running.
Definition: BlurrrNetworkServiceDiscovery.h:824
Definition: BlurrrNetworkServiceDiscovery.h:861
Definition: BlurrrNetworkServiceDiscovery.h:862
Definition: BlurrrNetworkServiceDiscovery.h:842
Daemon connection failed.
Definition: BlurrrNetworkServiceDiscovery.h:821
Invalid address.
Definition: BlurrrNetworkServiceDiscovery.h:811
Configuration error.
Definition: BlurrrNetworkServiceDiscovery.h:830
void(* BNSD_RegisterCallback)(struct BNSD_Registration *zeroconf_registration, const char *service_name, const char *service_type, const char *domain, int32_t blurrr_error_code, uint32_t flags, void *user_data)
Callback for BNSD_RegisterService.
Definition: BlurrrNetworkServiceDiscovery.h:987
Object was in a bad state.
Definition: BlurrrNetworkServiceDiscovery.h:798
Definition: BlurrrNetworkServiceDiscovery.h:856
Invalid host name.
Definition: BlurrrNetworkServiceDiscovery.h:799
Definition: BlurrrNetworkServiceDiscovery.h:843
struct BNSD_Registration BNSD_Registration
Definition: BlurrrNetworkServiceDiscovery.h:885
Definition: BlurrrNetworkServiceDiscovery.h:845
bool BNSD_Init(void *platform_init_object)
Initializes the library.
Definition: BlurrrNetworkServiceDiscovery.h:812
Definition: BlurrrNetworkServiceDiscovery.h:860
Invalid service subtype.
Definition: BlurrrNetworkServiceDiscovery.h:832
Invalid service name.
Definition: BlurrrNetworkServiceDiscovery.h:807
Invalid operation.
Definition: BlurrrNetworkServiceDiscovery.h:819
DNS Error: No such domain.
Definition: BlurrrNetworkServiceDiscovery.h:837
void(* BNSD_ResolveCallback)(struct BNSD_Resolve *zeroconf_resolve, const char *service_name, const char *service_type, const char *domain, const char *full_name, const char *host_target, uint16_t port, const char *txt_record, uint16_t txt_record_length, int32_t blurrr_error_code, uint32_t flags, int32_t interface_index, void *user_data)
Callback for BNSD_StartResolve.
Definition: BlurrrNetworkServiceDiscovery.h:1083
RR key is pattern.
Definition: BlurrrNetworkServiceDiscovery.h:803
Invalid packet.
Definition: BlurrrNetworkServiceDiscovery.h:833
void BNSD_StopResolve(struct BNSD_Resolve *resolve_service)
Stops resolving services for the specific instance.
EXPERIMENTAL: A hint that another callback is pending so you might defer updating UI...
Definition: BlurrrNetworkServiceDiscovery.h:871
void(* BNSD_DiscoveryCallback)(struct BNSD_Discovery *zeroconf_discovery, const char *service_name, const char *service_type, const char *domain, bool is_added, int32_t blurrr_error_code, uint32_t flags, int32_t interface_index, void *user_data)
Callback for BNSD_StartDiscovery.
Definition: BlurrrNetworkServiceDiscovery.h:1028
Too many objects.
Definition: BlurrrNetworkServiceDiscovery.h:814
If a time out was specified calling StartResolve, this is the value returned when the time out happen...
Definition: BlurrrNetworkServiceDiscovery.h:795
bool BNSD_IsSupported(void)
A quick test to see if the current system supports Zeroconf.
Invalid RDATA.
Definition: BlurrrNetworkServiceDiscovery.h:846
Generic error code.
Definition: BlurrrNetworkServiceDiscovery.h:797
Verson mismatch.
Definition: BlurrrNetworkServiceDiscovery.h:831
struct BNSD_Resolve BNSD_Resolve
Definition: BlurrrNetworkServiceDiscovery.h:887
Access denied.
Definition: BlurrrNetworkServiceDiscovery.h:818
OS error.
Definition: BlurrrNetworkServiceDiscovery.h:816
Definition: BlurrrNetworkServiceDiscovery.h:857
Invalid DNS TTL.
Definition: BlurrrNetworkServiceDiscovery.h:802
OK.
Definition: BlurrrNetworkServiceDiscovery.h:794
Too many entries.
Definition: BlurrrNetworkServiceDiscovery.h:815
Definition: BlurrrNetworkServiceDiscovery.h:865
Invalid domain name.
Definition: BlurrrNetworkServiceDiscovery.h:800
Operation not permitted.
Definition: BlurrrNetworkServiceDiscovery.h:851
No suitable network protocol available.
Definition: BlurrrNetworkServiceDiscovery.h:801
An unexpected D-Bus error occurred.
Definition: BlurrrNetworkServiceDiscovery.h:820
Invalid argument.
Definition: BlurrrNetworkServiceDiscovery.h:852
Memory exhausted.
Definition: BlurrrNetworkServiceDiscovery.h:822
Invalid port number.
Definition: BlurrrNetworkServiceDiscovery.h:809
Name collision.
Definition: BlurrrNetworkServiceDiscovery.h:804
Invalid key.
Definition: BlurrrNetworkServiceDiscovery.h:810
Invalid interface.
Definition: BlurrrNetworkServiceDiscovery.h:825
const char * BNSD_GetBackendDescription(void)
Returns a string with the name of the backend in use.
struct BNSD_Registration * BNSD_RegisterService(const char *service_name, const char *service_type, const char *domain, const char *host_name, uint16_t port, uint32_t flags, const char *txt_record, uint16_t txt_record_length, BNSD_RegisterCallback callback_function, void *user_data)
Starts advertising a new service.
void BNSD_Quit(void)
Uninitializes the library.
size_t BNSD_GetDeviceNameString(char *string_array, size_t array_length)
Returns a string with something that can be used as your computer name.
Invlaid DNS return code.
Definition: BlurrrNetworkServiceDiscovery.h:834
Is empty.
Definition: BlurrrNetworkServiceDiscovery.h:853
struct BNSD_Discovery * BNSD_StartDiscovery(const char *service_type, const char *domain, uint32_t flags, BNSD_DiscoveryCallback callback_function, void *user_data)
Starts discovering all services that are currently advertised matching your critera.
Definition: BlurrrNetworkServiceDiscovery.h:841
struct BNSD_Resolve * BNSD_StartResolve(const char *service_name, const char *service_type, const char *domain, uint32_t flags, uint32_t time_out, BNSD_ResolveCallback callback_function, void *user_data)
Starts resolving the service you request.
Invalid DNS class.
Definition: BlurrrNetworkServiceDiscovery.h:847
DNS Error: Operation refused.
Definition: BlurrrNetworkServiceDiscovery.h:840
void BNSD_FreeString(char *str)
Frees the string created by BNSD_CreateDeviceNameString.
void BNSD_StopDiscovery(struct BNSD_Discovery *discovery_service)
Stops discovering services for the specific instance.
DNS Error: Server Failure.
Definition: BlurrrNetworkServiceDiscovery.h:836
The requested operation is invalid because it is redundant.
Definition: BlurrrNetworkServiceDiscovery.h:854
Definition: BlurrrNetworkServiceDiscovery.h:858
Too many clients.
Definition: BlurrrNetworkServiceDiscovery.h:813
Invalid RR.
Definition: BlurrrNetworkServiceDiscovery.h:805
DNS Error: Not authorized.
Definition: BlurrrNetworkServiceDiscovery.h:844
The object passed to this function was invalid.
Definition: BlurrrNetworkServiceDiscovery.h:823
DNS Error: Not implemented.
Definition: BlurrrNetworkServiceDiscovery.h:838
DNS Error: Form error.
Definition: BlurrrNetworkServiceDiscovery.h:835
Definition: BlurrrNetworkServiceDiscovery.h:859
Not found.
Definition: BlurrrNetworkServiceDiscovery.h:829
Invalid flags.
Definition: BlurrrNetworkServiceDiscovery.h:827
Invalid service type.
Definition: BlurrrNetworkServiceDiscovery.h:808
char * BNSD_CreateDeviceNameString(void)
Returns a string with something that can be used as your computer name.
void BNSD_UnregisterService(struct BNSD_Registration *registration_service)
Stops advertising an existing service and frees the resources.
struct BNSD_Discovery BNSD_Discovery
Definition: BlurrrNetworkServiceDiscovery.h:886
invalid paramters were passed (Windows DNSSD)
Definition: BlurrrNetworkServiceDiscovery.h:863
Not supported.
Definition: BlurrrNetworkServiceDiscovery.h:849
Invalid DNS type.
Definition: BlurrrNetworkServiceDiscovery.h:848