void *x11_invent_auth(char *proto, int protomaxlen,
char *data, int datamaxlen, int proto_id)
{
- struct X11Auth *auth = smalloc(sizeof(struct X11Auth));
+ struct X11Auth *auth = snew(struct X11Auth);
char ourdata[64];
int i;
return auth;
}
+void x11_free_auth(void *auth)
+{
+
+ sfree(auth);
+}
+
/*
* Fetch the real auth data for a given display string, and store
* it in an X11Auth structure. Returns NULL on success, or an error
return NULL;
}
-static int x11_closing(Plug plug, char *error_msg, int error_code,
+static int x11_closing(Plug plug, const char *error_msg, int error_code,
int calling_back)
{
struct X11Private *pr = (struct X11Private *) plug;
* Returns an error message, or NULL on success.
* also, fills the SocketsStructure
*/
-char *x11_init(Socket * s, char *display, void *c, void *auth,
- const char *peeraddr, int peerport)
+const char *x11_init(Socket * s, char *display, void *c, void *auth,
+ const char *peeraddr, int peerport, const Config *cfg)
{
static const struct plug_function_table fn_table = {
x11_closing,
SockAddr addr;
int port;
- char *err, *dummy_realhost;
+ const char *err;
+ char *dummy_realhost;
char host[128];
int n, displaynum;
struct X11Private *pr;
/*
* Try to find host.
*/
- addr = name_lookup(host, port, &dummy_realhost);
+ addr = name_lookup(host, port, &dummy_realhost, cfg);
if ((err = sk_addr_error(addr)) != NULL)
return err;
/*
* Open socket.
*/
- pr = (struct X11Private *) smalloc(sizeof(struct X11Private));
+ pr = snew(struct X11Private);
pr->fn = &fn_table;
pr->auth_protocol = NULL;
pr->auth = (struct X11Auth *)auth;
pr->throttled = pr->throttle_override = 0;
pr->c = c;
- pr->s = *s = new_connection(addr, dummy_realhost, port, 0, 1, 0, (Plug) pr);
+ pr->s = *s = new_connection(addr, dummy_realhost, port,
+ 0, 1, 0, (Plug) pr, cfg);
if ((err = sk_socket_error(*s)) != NULL) {
sfree(pr);
return err;
*/
int x11_send(Socket s, char *data, int len)
{
- struct X11Private *pr = (struct X11Private *) sk_get_private_ptr(s);
-
- if (s == NULL)
+ struct X11Private *pr;
+ if (!s)
return 0;
+ pr = (struct X11Private *) sk_get_private_ptr(s);
/*
* Read the first packet.
pr->auth_psize = (pr->auth_plen + 3) & ~3;
pr->auth_dsize = (pr->auth_dlen + 3) & ~3;
/* Leave room for a terminating zero, to make our lives easier. */
- pr->auth_protocol = (char *) smalloc(pr->auth_psize + 1);
- pr->auth_data = (unsigned char *) smalloc(pr->auth_dsize);
+ pr->auth_protocol = snewn(pr->auth_psize + 1, char);
+ pr->auth_data = snewn(pr->auth_dsize, unsigned char);
}
/*
message = dupprintf("PuTTY X11 proxy: %s", err);
msglen = strlen(message);
- reply = smalloc(8 + msglen+1 + 4); /* include zero byte */
+ reply = snewn(8 + msglen+1 + 4, unsigned char); /* include zero */
msgsize = (msglen + 3) & ~3;
reply[0] = 0; /* failure */
reply[1] = msglen; /* length of reason string */