gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnunet] 09/09: Refactor resolver_getprotobyname and resolver_getservbyn


From: gnunet
Subject: [gnunet] 09/09: Refactor resolver_getprotobyname and resolver_getservbyname functions
Date: Thu, 07 Dec 2023 15:51:18 +0100

This is an automated email from the git hooks/post-receive script.

sebi pushed a commit to branch master
in repository gnunet.

commit ee105432a611a44249f867fb5f6f0bc101e000a9
Author: Sebastian Nadler <sebastian.nadler@tum.de>
AuthorDate: Mon Dec 4 20:31:09 2023 +0100

    Refactor resolver_getprotobyname and resolver_getservbyname functions
---
 src/service/gns/gnunet-service-gns_resolver.c | 46 +++++++++------------------
 1 file changed, 15 insertions(+), 31 deletions(-)

diff --git a/src/service/gns/gnunet-service-gns_resolver.c 
b/src/service/gns/gnunet-service-gns_resolver.c
index e872a0ea5..445ae3346 100644
--- a/src/service/gns/gnunet-service-gns_resolver.c
+++ b/src/service/gns/gnunet-service-gns_resolver.c
@@ -586,20 +586,15 @@ timeout_resolution (void *cls)
  *
  * @param name name of the protocol
 */
-static struct protoent *
+static int
 resolver_getprotobyname (const char *name)
 {
   struct protoent *pe = getprotobyname (name);
   if (pe == NULL)
   {
-    uint16_t proto = GNUNET_GNS_protocol_name_to_number (name);
-    if (proto == 0)
-      return NULL;
-    pe = GNUNET_new (struct protoent);
-    pe->p_name = GNUNET_strdup (name);
-    pe->p_proto = proto;
+    return GNUNET_GNS_protocol_name_to_number (name);
   }
-  return pe;
+  return pe->p_proto;
 }
 
 
@@ -609,20 +604,15 @@ resolver_getprotobyname (const char *name)
  * @param name name of the service
  * @param proto name of the protocol
 */
-static struct servent *
+static int
 resolver_getservbyname (const char *name, const char *proto)
 {
   struct servent *se = getservbyname (name, proto);
   if (se == NULL)
   {
-    uint16_t port = GNUNET_GNS_service_port_name_to_number (name);
-    if (port == 0)
-      return NULL;
-    se = GNUNET_new (struct servent);
-    se->s_name = GNUNET_strdup (name);
-    se->s_port = htons (port);
+    return htons (GNUNET_GNS_service_port_name_to_number (name));
   }
-  return se;
+  return se->s_port;
 }
 
 
@@ -652,8 +642,8 @@ resolver_lookup_get_next_label (struct GNS_ResolverHandle 
*rh)
   char *ret;
   char *srv_name;
   char *proto_name;
-  struct protoent *pe;
-  struct servent *se;
+  int protocol;
+  int service;
 
   if (0 == rh->name_resolution_pos)
     return NULL;
@@ -709,8 +699,8 @@ resolver_lookup_get_next_label (struct GNS_ResolverHandle 
*rh)
                                  rh->name_resolution_pos - (dot - rh->name)
                                  - 2);
     rh->name_resolution_pos = 0;
-    pe = resolver_getprotobyname (proto_name);
-    if (NULL == pe)
+    protocol = resolver_getprotobyname (proto_name);
+    if (0 == protocol)
     {
       GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
                   _ ("Protocol `%s' unknown, skipping labels.\n"),
@@ -719,9 +709,9 @@ resolver_lookup_get_next_label (struct GNS_ResolverHandle 
*rh)
       GNUNET_free (srv_name);
       return ret;
     }
-    se = resolver_getservbyname (srv_name,
-                                 proto_name);
-    if (NULL == se)
+    service = resolver_getservbyname (srv_name,
+                                      proto_name);
+    if (0 == service)
     {
       GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
                   _ (
@@ -735,22 +725,16 @@ resolver_lookup_get_next_label (struct GNS_ResolverHandle 
*rh)
                     srv_name);
         GNUNET_free (proto_name);
         GNUNET_free (srv_name);
-        GNUNET_free (pe->p_name);
-        GNUNET_free (pe);
         return ret;
       }
     }
     else
     {
-      rh->service = ntohs (se->s_port);
-      GNUNET_free (se->s_name);
-      GNUNET_free (se);
+      rh->service = ntohs (service);
     }
-    rh->protocol = pe->p_proto;
+    rh->protocol = protocol;
     GNUNET_free (proto_name);
     GNUNET_free (srv_name);
-    GNUNET_free (pe->p_name);
-    GNUNET_free (pe);
   }
   return ret;
 }

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]