req, bytes, ftp_bytes_sent, ftp_bandwidth);
}
-#define update_bandwidth(req,bytes) \
+#define update_bandwidth(req,bytes) \
do { \
if (unlikely(tux_ftp_login_message)) \
__update_bandwidth(req, bytes); \
static void ftp_lookup_vhost (tux_req_t *req, int cachemiss)
{
struct dentry *dentry;
- struct nameidata base={};
+ struct nameidata base = { };
struct vfsmount *mnt = NULL;
unsigned int flag = cachemiss ? 0 : LOOKUP_ATOMIC;
char ip[3+1+3+1+3+1+3 + 2];
sprintf(ip, "%d.%d.%d.%d", NIPQUAD(inet_sk(req->sock->sk)->rcv_saddr));
- Dprintk("ftp_lookup_vhost(%p, %d, virtual: %d, host: %s.)\n",
+ Dprintk("ftp_lookup_vhost(%p, %d, virtual: %d, host: %s.)\n",
req, flag, req->virtual, ip);
base.flags = LOOKUP_FOLLOW|flag;
PARSE_FTP_COMM('Q','U','I','T', QUIT,1);
PARSE_FTP_COMM('R','E','I','N', REIN,2);
PARSE_FTP_COMM('P','A','S','V', PASV,3);
- PARSE_FTP_COMM('S','T','R','U', STRU,4);
- PARSE_FTP_COMM('S','T','O','R', STOR,2);
- PARSE_FTP_COMM('S','T','O','U', STOU,3);
- PARSE_FTP_COMM('A','P','P','E', APPE,4);
- PARSE_FTP_COMM('A','L','L','O', ALLO,1);
- PARSE_FTP_COMM('R','N','F','R', RNFR,2);
- PARSE_FTP_COMM('R','N','T','O', RNTO,3);
- PARSE_FTP_COMM('A','B','O','R', ABOR,4);
- PARSE_FTP_COMM('D','E','L','E', DELE,1);
- PARSE_FTP_COMM('R','M','D',' ', RMD, 2);
- PARSE_FTP_COMM('M','K','D',' ', MKD, 3);
- PARSE_FTP_COMM('P','W','D',' ', PWD, 4);
- PARSE_FTP_COMM('S','Y','S','T', SYST,2);
- PARSE_FTP_COMM('N','O','O','P', NOOP,3);
- PARSE_FTP_COMM('F','E','A','T', FEAT,4);
+ PARSE_FTP_COMM('S','T','R','U', STRU,4);
+ PARSE_FTP_COMM('S','T','O','R', STOR,2);
+ PARSE_FTP_COMM('S','T','O','U', STOU,3);
+ PARSE_FTP_COMM('A','P','P','E', APPE,4);
+ PARSE_FTP_COMM('A','L','L','O', ALLO,1);
+ PARSE_FTP_COMM('R','N','F','R', RNFR,2);
+ PARSE_FTP_COMM('R','N','T','O', RNTO,3);
+ PARSE_FTP_COMM('A','B','O','R', ABOR,4);
+ PARSE_FTP_COMM('D','E','L','E', DELE,1);
+ PARSE_FTP_COMM('R','M','D',' ', RMD, 2);
+ PARSE_FTP_COMM('M','K','D',' ', MKD, 3);
+ PARSE_FTP_COMM('P','W','D',' ', PWD, 4);
+ PARSE_FTP_COMM('S','Y','S','T', SYST,2);
+ PARSE_FTP_COMM('N','O','O','P', NOOP,3);
+ PARSE_FTP_COMM('F','E','A','T', FEAT,4);
comm = comm1 | comm2 | comm3 | comm4;
req->ftp_command = comm;
goto out;
}
-
+
switch (STRING_VAL(mess[0], mess[1], mess[2], mess[3])) {
#define PARSE_FTP_COMM_3CHAR(c1,c2,c3,name) \
ftp_send_async_message(req, WRITE_ABORTED, 426);
return 1;
}
-#if CONFIG_TUX_DEBUG
+#ifdef CONFIG_TUX_DEBUG
req->bytes_expected = 0;
if (tux_TDprintk)
dump_stack();
void ftp_accept_pasv (tux_req_t *req, int cachemiss)
{
struct socket *sock, *new_sock = NULL;
+ struct inet_connection_sock *icsk1, *icsk2;
struct tcp_sock *tp1, *tp2;
int err;
tp1 = tcp_sk(req->data_sock->sk);
+ icsk1 = inet_csk(req->data_sock->sk);
Dprintk("PASV accept on req %p, accept_queue: %p.\n",
- req, tp1->accept_queue);
+ req, &icsk->icsk_accept_queue);
if (req->error || (req->data_sock->sk->sk_state != TCP_LISTEN))
goto error;
new_socket:
- if (!tp1->accept_queue) {
+ if (reqsk_queue_empty(&icsk1->icsk_accept_queue)) {
spin_lock_irq(&req->ti->work_lock);
add_keepalive_timer(req);
if (test_and_set_bit(0, &req->idle_input))
TUX_BUG();
spin_unlock_irq(&req->ti->work_lock);
- if (!tp1->accept_queue) {
+ if (reqsk_queue_empty(&icsk1->icsk_accept_queue)) {
add_tux_atom(req, ftp_accept_pasv);
return;
}
zap_data_socket(req);
tp2 = tcp_sk(new_sock->sk);
+ icsk2 = inet_csk(new_sock->sk);
tp2->nonagle = 2;
- tp2->ack.pingpong = tux_ack_pingpong;
+ icsk2->icsk_ack.pingpong = tux_ack_pingpong;
new_sock->sk->sk_reuse = 1;
sock_set_flag(new_sock->sk, SOCK_URGINLINE);
sock_reset_flag(new_sock->sk, SOCK_LINGER);
struct sockaddr_in addr;
unsigned int str_len;
struct tcp_sock *tp;
+ struct inet_connection_sock *icsk;
u32 local_addr;
int err;
ftp_send_async_message(req, CLOSE, 500);
GOTO_ERR;
}
-
+
local_addr = inet_sk(req->sock->sk)->rcv_saddr;
addr.sin_family = AF_INET;
addr.sin_port = 0;
addr.sin_addr.s_addr = local_addr;
- Dprintk("client address: (%d,%d,%d,%d).\n",
+ Dprintk("client address: (%d,%d,%d,%d).\n",
NIPQUAD(inet_sk(req->sock->sk)->daddr));
data_sock->sk->sk_reuse = 1;
err = data_sock->ops->bind(data_sock,
(struct sockaddr*)&addr, sizeof(addr));
tp = tcp_sk(data_sock->sk);
+ icsk = inet_csk(data_sock->sk);
+
tp->nonagle = 2;
- Dprintk("PASV bind() ret: %d.\n", err);
+ Dprintk("PASV bind() ret: %d.\n", err);
if (err < 0) {
req_err(req);
sock_release(data_sock);
GOTO_ERR;
}
- tp->ack.pingpong = tux_ack_pingpong;
+ icsk->icsk_ack.pingpong = tux_ack_pingpong;
if (!tux_keepalive_timeout)
tp->linger2 = 0;
(struct sockaddr*)&addr, sizeof(addr));
current->cap_effective = saved_cap;
- Dprintk("ACTIVE bind() ret: %d.\n", err);
+ Dprintk("ACTIVE bind() ret: %d.\n", err);
if (err) {
sock_release(data_sock);
req_err(req);