+ discover_server_notify_config(handler->server, config);
+ device_handler_update_lang(config->lang);
+ device_handler_reinit(handler);
+}
+
+static char *device_from_addr(void *ctx, struct pb_url *url)
+{
+ char *ipaddr, *buf, *tok, *dev = NULL;
+ const char *delim = " ";
+ struct sockaddr_in *ip;
+ struct sockaddr_in si;
+ struct addrinfo *res;
+ struct process *p;
+ int rc;
+
+ /* Note: IPv4 only */
+ rc = inet_pton(AF_INET, url->host, &(si.sin_addr));
+ if (rc > 0) {
+ ipaddr = url->host;
+ } else {
+ /* need to turn hostname into a valid IP */
+ rc = getaddrinfo(url->host, NULL, NULL, &res);
+ if (rc) {
+ pb_debug("%s: Invalid URL\n",__func__);
+ return NULL;
+ }
+ ipaddr = talloc_array(ctx,char,INET_ADDRSTRLEN);
+ ip = (struct sockaddr_in *) res->ai_addr;
+ inet_ntop(AF_INET, &(ip->sin_addr), ipaddr, INET_ADDRSTRLEN);
+ freeaddrinfo(res);