# patch everything I know to 2.6.22+ compatibility sub m1{ my ($w1,$w2)=@_; $w1=quotemeta($w1); $f{$_}=~s/(\W)$w1(\W)/$1$w2$2/gs; } sub m2{ my ($w1,$w2)=@_; $w1=quotemeta($w1); $f{$_}=~s/(\w+)\-\>$w1(\W)/$w2($1)$2/gs; } sub m3{ my ($w1,$w2,$w3)=@_; my $ww1=quotemeta($w1); my $ww2=quotemeta($w2); $f{$_}=~s/(\w+)\-\>$ww1\s*=\s*(\w+)\-\>$ww2(\W)/$1 eq $2?"$w3($1)$3":"$1->$w1 = $2->$w2$3"/gse; } sub m4{ my ($w1,$w2)=@_; $w1=quotemeta($w1); $f{$_}=~s/\#include\s+$w1(\W)/\#include $w2$1/gs; } for(wild($ENV{S},'.+\.h','.+\.c')){ next if(!-f $_); file($_); my $x=$f{$_}; m1('ipt_register_target','xt_register_target'); m1('ipt_unregister_target','xt_unregister_target'); m1('ipt_register_match','xt_register_match'); m1('ipt_unregister_match','xt_unregister_match'); m2('nh.iph','ip_hdr'); m2('h.th','tcp_hdr'); m2('mac.raw','skb_mac_header'); m2('tail','skb_tail_pointer'); m2('thread_info','task_thread_info'); m3('nh.raw','data','skb_reset_network_header'); m4('',''); m4('',''); flush1($_); undef $x; }