146 |
char *p, *end; |
char *p, *end; |
147 |
int ec, len; |
int ec, len; |
148 |
|
|
149 |
|
log_debug ("check_hkp_response: '%s'\r\n", resp); |
150 |
ec = recv ? WPTERR_WINSOCK_RECVKEY : WPTERR_WINSOCK_SENDKEY; |
ec = recv ? WPTERR_WINSOCK_RECVKEY : WPTERR_WINSOCK_SENDKEY; |
151 |
if (!strstr (resp, "HTTP/1.0 200 OK") && |
if (!strstr (resp, "HTTP/1.0 200 OK") && |
152 |
!strstr (resp, "HTTP/1.1 200 OK")) /* http error */ |
!strstr (resp, "HTTP/1.1 200 OK")) /* http error */ |
453 |
closesocket (fd); |
closesocket (fd); |
454 |
return 0; |
return 0; |
455 |
} |
} |
456 |
|
log_debug ("kserver_check_inet_connection: no inet connection.\r\n"); |
457 |
return -1; |
return -1; |
458 |
} |
} |
459 |
|
|
537 |
} |
} |
538 |
|
|
539 |
|
|
540 |
|
/* Set the default keyserver. |
541 |
|
If @hostname is NULL, use the predefined keyserver. */ |
542 |
void |
void |
543 |
keyserver_set_default (const char *hostname, WORD port) |
keyserver_set_default (const char *hostname, WORD port) |
544 |
{ |
{ |
545 |
|
if (!port) |
546 |
|
port = HKP_PORT; |
547 |
if (hostname != NULL) { |
if (hostname != NULL) { |
548 |
free_if_alloc (default_keyserver); |
free_if_alloc (default_keyserver); |
549 |
default_keyserver = m_strdup (hostname); |
default_keyserver = m_strdup (hostname); |
550 |
default_keyserver_port = port; |
default_keyserver_port = port; |
551 |
} |
} |
552 |
if (!port) |
if (!default_keyserver) { |
|
port = HKP_PORT; |
|
|
if (!default_keyserver) |
|
553 |
default_keyserver = m_strdup (DEF_HKP_KEYSERVER); |
default_keyserver = m_strdup (DEF_HKP_KEYSERVER); |
554 |
|
default_keyserver_port = HKP_PORT; |
555 |
|
} |
556 |
server[0].name = m_strdup (default_keyserver); |
server[0].name = m_strdup (default_keyserver); |
557 |
server[0].used = 1; |
server[0].used = 1; |
558 |
server[0].port = port; |
server[0].port = port; |
860 |
} |
} |
861 |
|
|
862 |
free_if_alloc (enc_pubkey); |
free_if_alloc (enc_pubkey); |
863 |
log_debug ("%s\r\n", request); |
log_debug ("request:\r\n%s\r\n", request); |
864 |
return request; |
return request; |
865 |
} |
} |
866 |
|
|
905 |
_snprintf (request, reqlen, fmt, keyid); |
_snprintf (request, reqlen, fmt, keyid); |
906 |
} |
} |
907 |
|
|
908 |
log_debug ("%s\r\n", request); |
log_debug ("request:\r\n%s\r\n", request); |
909 |
|
|
910 |
rc = sock_write (conn_fd, request, strlen (request)); |
rc = sock_write (conn_fd, request, strlen (request)); |
911 |
if (rc == SOCKET_ERROR) { |
if (rc == SOCKET_ERROR) { |
919 |
goto leave; |
goto leave; |
920 |
} |
} |
921 |
|
|
922 |
log_debug ("%s\r\n", *r_key); |
log_debug ("response:\r\n%s\r\n", *r_key); |
923 |
rc = check_hkp_response (*r_key, 1); |
rc = check_hkp_response (*r_key, 1); |
924 |
if (rc) |
if (rc) |
925 |
goto leave; |
goto leave; |
1179 |
break; |
break; |
1180 |
|
|
1181 |
case UID: |
case UID: |
1182 |
/* XXX: search for %3A and decode it back to ':' */ |
unhexify_buffer (p, &u->uid); |
|
u->uid = m_strdup (p); |
|
1183 |
break; |
break; |
1184 |
|
|
1185 |
case CREATE: |
case CREATE: |
1237 |
for (;;) { |
for (;;) { |
1238 |
if (sock_getline (fd, buf, sizeof (buf)-1, &n)) |
if (sock_getline (fd, buf, sizeof (buf)-1, &n)) |
1239 |
break; |
break; |
1240 |
|
/*log_debug ("record: '%s'\r\n", buf); */ |
1241 |
if (!strncmp (buf, "pub", 3)) |
if (!strncmp (buf, "pub", 3)) |
1242 |
parse_pub_record (key, buf); |
parse_pub_record (key, buf); |
1243 |
else |
else |
1510 |
/* XXX: remove / in .de/:11371 */ |
/* XXX: remove / in .de/:11371 */ |
1511 |
*r_keyserver = substr (url, 0, (p-url)); |
*r_keyserver = substr (url, 0, (p-url)); |
1512 |
*r_port = atoi (url+(p-url)+1); |
*r_port = atoi (url+(p-url)+1); |
1513 |
safe_free (url); |
free_if_alloc (url); |
1514 |
return 0; |
return 0; |
1515 |
} |
} |