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 
734 #ifdef __cplusplus
735 extern "C" {
736 #endif
737 
738 
739 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
740 
742  /* Note: For Doxygen to produce clean output, you should set the
743  * PREDEFINED option to remove DECLSPEC, CALLCONVENTION, and
744  * the DOXYGEN_SHOULD_IGNORE_THIS blocks.
745  * PREDEFINED = DOXYGEN_SHOULD_IGNORE_THIS=1 DECLSPEC= CALLCONVENTION=
746  */
747 
750 #ifdef BLURRRZEROCONF_BUILD_LIBRARY
751  #ifdef WIN32
752  #define BLURRRZEROCONF_EXPORT __declspec(dllexport)
753  #elif defined(__GNUC__) && __GNUC__ >= 4
754  #define BLURRRZEROCONF_EXPORT __attribute__ ((visibility("default")))
755  #else
756  #define BLURRRZEROCONF_EXPORT
757  #endif
758 #else
759  #define BLURRRZEROCONF_EXPORT
760 #endif /* BLURRRZEROCONF_BUILD_LIBRARY */
761 
762 
763  /*
764  Nullability qualifiers: currently only supported by Clang.
765  */
766  #if defined(__clang__)
767  #if __has_feature(nullability)
768  #define BNSD_NONNULL _Nonnull
769  #define BNSD_NULLABLE _Nullable
770  #else
771  #define BNSD_NONNULL
772  #define BNSD_NULLABLE
773  #endif
774  #else
775  #define BNSD_NONNULL
776  #define BNSD_NULLABLE
777  #endif
778 
779 
780 
782 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
783 
784 /* Visual Studio 2013 *finally* has <stdint.h> */
785 #include <stdint.h>
786 #include <stdbool.h>
787 #include <stddef.h>
788 
789 
793 enum
794 {
817  BNSD_ERR_OS = -19,
866  BNSD_ERR_MAX = -62 // Always update when adding more
867 };
868 
870 enum
871 {
873 };
874 
876 enum
877 {
879 };
880 
881 
882 struct BNSD_Registration;
883 struct BNSD_Discovery;
884 struct BNSD_Resolve;
885 
888 typedef struct BNSD_Resolve BNSD_Resolve;
889 
899 BLURRRZEROCONF_EXPORT bool BNSD_IsSupported(void);
900 
908 BLURRRZEROCONF_EXPORT bool BNSD_Init(void* BNSD_NULLABLE platform_init_object);
912 BLURRRZEROCONF_EXPORT void BNSD_Quit(void);
913 
929 BLURRRZEROCONF_EXPORT const char* BNSD_NONNULL BNSD_GetBackendDescription(void);
930 
936 BLURRRZEROCONF_EXPORT char* BNSD_NONNULL BNSD_CreateDeviceNameString(void);
941 BLURRRZEROCONF_EXPORT void BNSD_FreeString(char* BNSD_NULLABLE str);
949 BLURRRZEROCONF_EXPORT size_t BNSD_GetDeviceNameString(char* BNSD_NULLABLE string_array, size_t array_length);
950 
951 
952 
953 
988 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);
989 
1029 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);
1030 
1084 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);
1085 
1086 
1110 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);
1117 BLURRRZEROCONF_EXPORT void BNSD_UnregisterService(struct BNSD_Registration* BNSD_NULLABLE registration_service);
1118 
1137 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);
1144 BLURRRZEROCONF_EXPORT void BNSD_StopDiscovery(struct BNSD_Discovery* BNSD_NULLABLE discovery_service);
1145 
1168 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);
1175 BLURRRZEROCONF_EXPORT void BNSD_StopResolve(struct BNSD_Resolve* BNSD_NULLABLE resolve_service);
1176 
1177 
1178 
1179 
1180 #ifdef __cplusplus
1181 }
1182 #endif
1183 
1184 #endif /* BLURRR_ZEROCONF_H */
1185 
EXPERIMENTAL: Include Bluetooth.
Definition: BlurrrNetworkServiceDiscovery.h:878
Invalid protocol.
Definition: BlurrrNetworkServiceDiscovery.h:827
Daemon not running.
Definition: BlurrrNetworkServiceDiscovery.h:825
Definition: BlurrrNetworkServiceDiscovery.h:862
Definition: BlurrrNetworkServiceDiscovery.h:863
Definition: BlurrrNetworkServiceDiscovery.h:843
Daemon connection failed.
Definition: BlurrrNetworkServiceDiscovery.h:822
Invalid address.
Definition: BlurrrNetworkServiceDiscovery.h:812
Configuration error.
Definition: BlurrrNetworkServiceDiscovery.h:831
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:988
Object was in a bad state.
Definition: BlurrrNetworkServiceDiscovery.h:799
Definition: BlurrrNetworkServiceDiscovery.h:857
Invalid host name.
Definition: BlurrrNetworkServiceDiscovery.h:800
Definition: BlurrrNetworkServiceDiscovery.h:844
struct BNSD_Registration BNSD_Registration
Definition: BlurrrNetworkServiceDiscovery.h:886
Definition: BlurrrNetworkServiceDiscovery.h:846
bool BNSD_Init(void *platform_init_object)
Initializes the library.
Definition: BlurrrNetworkServiceDiscovery.h:813
Definition: BlurrrNetworkServiceDiscovery.h:861
Invalid service subtype.
Definition: BlurrrNetworkServiceDiscovery.h:833
Invalid service name.
Definition: BlurrrNetworkServiceDiscovery.h:808
Invalid operation.
Definition: BlurrrNetworkServiceDiscovery.h:820
DNS Error: No such domain.
Definition: BlurrrNetworkServiceDiscovery.h:838
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:1084
RR key is pattern.
Definition: BlurrrNetworkServiceDiscovery.h:804
Invalid packet.
Definition: BlurrrNetworkServiceDiscovery.h:834
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:872
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:1029
Too many objects.
Definition: BlurrrNetworkServiceDiscovery.h:815
If a time out was specified calling StartResolve, this is the value returned when the time out happen...
Definition: BlurrrNetworkServiceDiscovery.h:796
bool BNSD_IsSupported(void)
A quick test to see if the current system supports Zeroconf.
Invalid RDATA.
Definition: BlurrrNetworkServiceDiscovery.h:847
Generic error code.
Definition: BlurrrNetworkServiceDiscovery.h:798
Verson mismatch.
Definition: BlurrrNetworkServiceDiscovery.h:832
struct BNSD_Resolve BNSD_Resolve
Definition: BlurrrNetworkServiceDiscovery.h:888
Access denied.
Definition: BlurrrNetworkServiceDiscovery.h:819
OS error.
Definition: BlurrrNetworkServiceDiscovery.h:817
Definition: BlurrrNetworkServiceDiscovery.h:858
Invalid DNS TTL.
Definition: BlurrrNetworkServiceDiscovery.h:803
OK.
Definition: BlurrrNetworkServiceDiscovery.h:795
Too many entries.
Definition: BlurrrNetworkServiceDiscovery.h:816
Definition: BlurrrNetworkServiceDiscovery.h:866
Invalid domain name.
Definition: BlurrrNetworkServiceDiscovery.h:801
Operation not permitted.
Definition: BlurrrNetworkServiceDiscovery.h:852
No suitable network protocol available.
Definition: BlurrrNetworkServiceDiscovery.h:802
An unexpected D-Bus error occurred.
Definition: BlurrrNetworkServiceDiscovery.h:821
Invalid argument.
Definition: BlurrrNetworkServiceDiscovery.h:853
Memory exhausted.
Definition: BlurrrNetworkServiceDiscovery.h:823
Invalid port number.
Definition: BlurrrNetworkServiceDiscovery.h:810
Name collision.
Definition: BlurrrNetworkServiceDiscovery.h:805
Invalid key.
Definition: BlurrrNetworkServiceDiscovery.h:811
Invalid interface.
Definition: BlurrrNetworkServiceDiscovery.h:826
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:835
Is empty.
Definition: BlurrrNetworkServiceDiscovery.h:854
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:842
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:848
DNS Error: Operation refused.
Definition: BlurrrNetworkServiceDiscovery.h:841
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:837
The requested operation is invalid because it is redundant.
Definition: BlurrrNetworkServiceDiscovery.h:855
Definition: BlurrrNetworkServiceDiscovery.h:859
Too many clients.
Definition: BlurrrNetworkServiceDiscovery.h:814
Invalid RR.
Definition: BlurrrNetworkServiceDiscovery.h:806
DNS Error: Not authorized.
Definition: BlurrrNetworkServiceDiscovery.h:845
The object passed to this function was invalid.
Definition: BlurrrNetworkServiceDiscovery.h:824
DNS Error: Not implemented.
Definition: BlurrrNetworkServiceDiscovery.h:839
DNS Error: Form error.
Definition: BlurrrNetworkServiceDiscovery.h:836
Definition: BlurrrNetworkServiceDiscovery.h:860
Not found.
Definition: BlurrrNetworkServiceDiscovery.h:830
Invalid flags.
Definition: BlurrrNetworkServiceDiscovery.h:828
Invalid service type.
Definition: BlurrrNetworkServiceDiscovery.h:809
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:887
invalid paramters were passed (Windows DNSSD)
Definition: BlurrrNetworkServiceDiscovery.h:864
Not supported.
Definition: BlurrrNetworkServiceDiscovery.h:850
Invalid DNS type.
Definition: BlurrrNetworkServiceDiscovery.h:849