1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-09 17:38:00 +00:00

Fixes for Debian bug #192701 (64-bit gccs warn about casts between

ptrs and ints of different size and -Werror makes this serious).
The GTK bits are done by Colin's patch to use GINT_TO_POINTER
(thanks); the uxnet bits are done by cleaning up the rest of the
code. In particular, network.h now typedefs `OSSocket' to be a type
capable of holding whatever the OS's socket data type is that
underlies our socket abstraction. Individual platforms can make this
typedef themselves if they define OSSOCKET_DEFINED to prevent
network.h redoing it; so the Unix OSSocket is now int. Default is
still void *, so other platforms should be unaffected.

[originally from svn r3171]
This commit is contained in:
Simon Tatham 2003-05-10 08:35:54 +00:00
parent 342b5803e7
commit 9a242f06ba
8 changed files with 27 additions and 16 deletions

View File

@ -25,6 +25,10 @@ typedef struct SockAddr_tag *SockAddr;
typedef struct socket_function_table **Socket;
typedef struct plug_function_table **Plug;
#ifndef OSSOCKET_DEFINED
typedef void *OSSocket;
#endif
struct socket_function_table {
Plug(*plug) (Socket s, Plug p);
/* use a different plug (return the old one) */
@ -64,7 +68,7 @@ struct plug_function_table {
* on a socket is cleared or partially cleared. The new backlog
* size is passed in the `bufsize' parameter.
*/
int (*accepting)(Plug p, void *sock);
int (*accepting)(Plug p, OSSocket sock);
/*
* returns 0 if the host at address addr is a valid host for connecting or error
*/
@ -100,7 +104,7 @@ Socket sk_new(SockAddr addr, int port, int privport, int oobinline,
Socket sk_newlistener(char *srcaddr, int port, Plug plug, int local_host_only);
Socket sk_register(void *sock, Plug plug);
Socket sk_register(OSSocket sock, Plug plug);
#define sk_plug(s,p) (((*s)->plug) (s, p))
#define sk_close(s) (((*s)->close) (s))

View File

@ -381,7 +381,7 @@ const char *pfd_newconnect(Socket *s, char *hostname, int port,
called when someone connects to the local port
*/
static int pfd_accepting(Plug p, void *sock)
static int pfd_accepting(Plug p, OSSocket sock)
{
static const struct plug_function_table fn_table = {
pfd_closing,

View File

@ -234,7 +234,7 @@ static void plug_proxy_sent (Plug p, int bufsize)
plug_sent(ps->plug, bufsize);
}
static int plug_proxy_accepting (Plug p, void *sock)
static int plug_proxy_accepting (Plug p, OSSocket sock)
{
Proxy_Plug pp = (Proxy_Plug) p;
Proxy_Socket ps = pp->proxy_socket;

View File

@ -77,7 +77,7 @@ struct Socket_proxy_tag {
int sent_bufsize;
/* accepting */
void *accepting_sock;
OSSocket accepting_sock;
/* configuration, used to look up proxy settings */
Config cfg;

View File

@ -374,7 +374,8 @@ void dlg_listbox_addwithid(union control *ctrl, void *dlg,
gtk_container_add(GTK_CONTAINER(uc->menu), menuitem);
gtk_widget_show(menuitem);
gtk_object_set_data(GTK_OBJECT(menuitem), "user-data", (gpointer)id);
gtk_object_set_data(GTK_OBJECT(menuitem), "user-data",
GINT_TO_POINTER(id));
gtk_signal_connect(GTK_OBJECT(menuitem), "activate",
GTK_SIGNAL_FUNC(menuitem_activate), dp);
} else if (!uc->entry) {
@ -436,7 +437,8 @@ void dlg_listbox_addwithid(union control *ctrl, void *dlg,
GTK_SIGNAL_FUNC(widget_focus), dp);
gtk_signal_connect(GTK_OBJECT(listitem), "button_press_event",
GTK_SIGNAL_FUNC(listitem_button), dp);
gtk_object_set_data(GTK_OBJECT(listitem), "user-data", (gpointer)id);
gtk_object_set_data(GTK_OBJECT(listitem), "user-data",
GINT_TO_POINTER(id));
} else {
/*
* List item in a combo-box list, which means the sensible
@ -448,7 +450,8 @@ void dlg_listbox_addwithid(union control *ctrl, void *dlg,
gtk_container_add(GTK_CONTAINER(uc->list), listitem);
gtk_widget_show(listitem);
gtk_object_set_data(GTK_OBJECT(listitem), "user-data", (gpointer)id);
gtk_object_set_data(GTK_OBJECT(listitem), "user-data",
GINT_TO_POINTER(id));
}
dp->flags &= ~FLAG_UPDATING_COMBO_LIST;
@ -470,7 +473,7 @@ int dlg_listbox_getid(union control *ctrl, void *dlg, int index)
item = GTK_OBJECT(g_list_nth_data(children, index));
g_list_free(children);
return (int)gtk_object_get_data(GTK_OBJECT(item), "user-data");
return GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(item), "user-data"));
}
/* dlg_listbox_index returns <0 if no single element is selected. */

View File

@ -2485,7 +2485,8 @@ void copy_all_menuitem(GtkMenuItem *item, gpointer data)
void special_menuitem(GtkMenuItem *item, gpointer data)
{
struct gui_data *inst = (struct gui_data *)data;
int code = (int)gtk_object_get_data(GTK_OBJECT(item), "user-data");
int code = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(item),
"user-data"));
inst->back->special(inst->backhandle, code);
}
@ -2836,7 +2837,7 @@ void update_specials_menu(void *frontend)
if (*specials[i].name) {
menuitem = gtk_menu_item_new_with_label(specials[i].name);
gtk_object_set_data(GTK_OBJECT(menuitem), "user-data",
(gpointer)specials[i].code);
GINT_TO_POINTER(specials[i].code));
gtk_signal_connect(GTK_OBJECT(menuitem), "activate",
GTK_SIGNAL_FUNC(special_menuitem), inst);
} else

View File

@ -15,6 +15,9 @@ struct FontSpec {
typedef void *Context; /* FIXME: probably needs changing */
typedef int OSSocket;
#define OSSOCKET_DEFINED /* stop network.h using its default */
extern Backend pty_backend;
/*

View File

@ -90,7 +90,7 @@ static int cmpfortree(void *av, void *bv)
static int cmpforsearch(void *av, void *bv)
{
Actual_Socket b = (Actual_Socket) bv;
int as = (int) av, bs = b->s;
int as = *(int *)av, bs = b->s;
if (as < bs)
return -1;
if (as > bs)
@ -336,7 +336,7 @@ static struct socket_function_table tcp_fn_table = {
sk_tcp_socket_error
};
Socket sk_register(void *sock, Plug plug)
Socket sk_register(OSSocket sockfd, Plug plug)
{
Actual_Socket ret;
@ -357,7 +357,7 @@ Socket sk_register(void *sock, Plug plug)
ret->oobpending = FALSE;
ret->listener = 0;
ret->s = (int)sock;
ret->s = sockfd;
if (ret->s < 0) {
ret->error = error_string(errno);
@ -819,7 +819,7 @@ static int net_select_result(int fd, int event)
u_long atmark;
/* Find the Socket structure */
s = find234(sktree, (void *) fd, cmpforsearch);
s = find234(sktree, &fd, cmpforsearch);
if (!s)
return 1; /* boggle */
@ -876,7 +876,7 @@ static int net_select_result(int fd, int event)
if (s->localhost_only && !ipv4_is_loopback(isa.sin_addr)) {
close(t); /* someone let nonlocal through?! */
} else if (plug_accepting(s->plug, (void*)t)) {
} else if (plug_accepting(s->plug, t)) {
close(t); /* denied or error */
}
break;