Changeset 30234


Ignore:
Timestamp:
2012-02-05T16:50:27+01:00 (6 years ago)
Author:
jow
Message:

[packages_10.03.2] openswan: merge r29580, r29581, r29582, r29584, r29585, r29586

Location:
branches/packages_10.03.2/net/openswan
Files:
2 deleted
2 edited
4 copied

Legend:

Unmodified
Added
Removed
  • branches/packages_10.03.2/net/openswan/Makefile

    r29244 r30234  
    1111PKG_NAME:=openswan 
    1212PKG_VERSION:=2.6.37 
    13 PKG_RELEASE:=1 
     13PKG_RELEASE:=2 
    1414 
    1515PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz 
     
    3838  CATEGORY:=Network 
    3939  TITLE+= (daemon) 
    40   DEPENDS+= +kmod-openswan +libgmp +ip 
     40  DEPENDS+= +libgmp +ip 
    4141endef 
    4242 
     
    8888/etc/ipsec.conf 
    8989/etc/ipsec.secrets 
     90/etc/config/ipsec 
    9091endef 
    9192 
     
    9495        $(INSTALL_DIR) $(1)/etc/init.d 
    9596        $(CP) ./files/ipsec.init $(1)/etc/init.d/ipsec 
     97        $(CP) ./files/ipsec.conf $(1)/etc/ipsec.conf 
     98        $(CP) ./files/ipsec.secrets $(1)/etc/ipsec.secrets 
     99        $(INSTALL_DIR) $(1)/etc/config 
     100        $(INSTALL_CONF) ./files/ipsec.config $(1)/etc/config/ipsec 
    96101        rm -rf $(1)/usr/share 
    97102        rm -rf $(1)/usr/man 
     
    99104        rm -rf $(1)/etc/rc.d 
    100105        find $(1) -name \*.old | xargs rm -rf 
     106        $(INSTALL_DIR) $(1)/lib/upgrade/keep.d 
     107        $(INSTALL_DATA) files/ipsec.upgrade $(1)/lib/upgrade/keep.d/ipsec 
    101108endef 
    102109 
  • branches/packages_10.03.2/net/openswan/files/ipsec.init

    r13092 r30234  
    3333START=60 
    3434EXTRA_COMMANDS=status 
    35 EXTRA_HELP="    status  Show the status of the service" 
     35EXTRA_HELP="    status  Show the status of the service" 
     36 
     37# Format a list into a delimited string and print it 
     38config_list_delimit() { 
     39        local SECTION="$1" 
     40        local OPTION="$2" 
     41        local DELIMITER="${3:- }" 
     42 
     43        config_list_foreach "$SECTION" "$OPTION" "printf \"%s%s\"" "$DELIMITER" | sed "s/.\{${#DELIMITER}\}$//" 
     44} 
     45 
     46# Callback for each ipsec configuration section 
     47# Converts list options from UCI to ipsec format and writes ipsec section headers 
     48CUR_SECTION_NAME= 
     49CUR_SECTION_TYPE= 
     50config_cb() { 
     51        local TYPE="$1" 
     52        local NAME="$2" 
     53 
     54        # Handle list options from previous section 
     55        if [ "$CUR_SECTION_TYPE" = "ipsec_conn" ] ; then 
     56                local IKE="$(config_list_delimit "$CUR_SECTION_NAME" "ike" ", ")" 
     57                if [ -n "$IKE" ] ; then 
     58                        printf "\tike=\"%s\"\n" "$IKE" >> "$IPSEC_UCI_CONF" 
     59                fi 
     60 
     61                local SUBNETS 
     62                local SPACE_PAT="* *" 
     63                config_get "SUBNETS" "$CUR_SECTION_NAME" "leftsubnets" 
     64                case "$SUBNETS" in 
     65                        $SPACE_PAT) 
     66                                printf "\tleftsubnets={ %s }\n" "$SUBNETS" >> "$IPSEC_UCI_CONF" 
     67                                ;; 
     68                        ?*) 
     69                                printf "\tleftsubnet=%s\n" "$SUBNETS" >> "$IPSEC_UCI_CONF" 
     70                                ;; 
     71                esac 
     72 
     73                config_get "SUBNETS" "$CUR_SECTION_NAME" "rightsubnets" 
     74                case "$SUBNETS" in 
     75                        $SPACE_PAT) 
     76                                printf "\trightsubnets={ %s }\n" "$SUBNETS" >> "$IPSEC_UCI_CONF" 
     77                                ;; 
     78                        ?*) 
     79                                printf "\trightsubnet=%s\n" "$SUBNETS" >> "$IPSEC_UCI_CONF" 
     80                                ;; 
     81                esac 
     82        elif [ "$CUR_SECTION_TYPE" = "ipsec_config" ] ; then 
     83                local VPRIV="$(config_list_delimit "$CUR_SECTION_NAME" "virtual_private" ",")" 
     84                if [ -n "$VPRIV" ] ; then 
     85                        printf "\tvirtual_private=%s\n" "$VPRIV" >> "$IPSEC_UCI_CONF" 
     86                fi 
     87        fi 
     88 
     89        CUR_SECTION_NAME="$NAME" 
     90        CUR_SECTION_TYPE="$TYPE" 
     91 
     92        case "$CUR_SECTION_TYPE" in 
     93                ipsec_config|ipsec_conn) 
     94                        # Handled in option_cb 
     95                        echo >> "$IPSEC_UCI_CONF" 
     96                        echo "${TYPE#ipsec_} $NAME" >> "$IPSEC_UCI_CONF" 
     97                        ;; 
     98                *) 
     99                        # Not handled in option_cb 
     100                        ;; 
     101        esac 
     102 
     103        return 0 
     104} 
     105 
     106# Callback for each ipsec configuration option 
     107# Prints each UCI option to $IPSEC_UCI_CONF in ipsec.conf format 
     108option_cb() { 
     109        local NAME="$1" 
     110        local VALUE="$2" 
     111 
     112        case "$CUR_SECTION_TYPE" in 
     113                ipsec_config|ipsec_conn) 
     114                        # Handle option in these sections 
     115                        ;; 
     116                *) 
     117                        # Ignore options in all other sections 
     118                        return 0 
     119                        ;; 
     120        esac 
     121 
     122        case "$NAME" in 
     123                modecfgdns_ITEM[0-9]*) 
     124                        printf "\tmodecfgdns%d=%s\n" "${NAME##modecfgdns_ITEM}" "$VALUE" >> "$IPSEC_UCI_CONF" 
     125                        ;; 
     126                modecfgwins_ITEM[0-9]*) 
     127                        printf "\tmodecfgwins%d=%s\n" "${NAME##modecfgwins_ITEM}" "$VALUE" >> "$IPSEC_UCI_CONF" 
     128                        ;; 
     129                *_ITEM[0-9]*|*_LENGTH) 
     130                        # Ignore list items and length updates 
     131                        ;; 
     132                [!a-zA-Z]*) 
     133                        # Ignore non-ipsec.conf parameters 
     134                        ;; 
     135                *) 
     136                        # Quote values with characers which require quoting 
     137                        if echo "$VALUE" | grep -q '^[[:alnum:]_%.]*$' ; then 
     138                                printf "\t%s=%s\n" "$NAME" "$VALUE" >> "$IPSEC_UCI_CONF" 
     139                        else 
     140                                printf "\t%s=\"%s\"\n" "$NAME" "$VALUE" >> "$IPSEC_UCI_CONF" 
     141                        fi 
     142                        ;; 
     143        esac 
     144 
     145        return 0 
     146} 
     147 
     148ipsec_config_convert() { 
     149        IPSEC_UCI_CONF="${IPSEC_UCI_CONF:-${IPSEC_CONFS:-/etc}/ipsec.uci.conf}" 
     150        ipsec_config_print_header 
     151        config_load "ipsec" 
     152        # Conversion for $IPSEC_UCI_CONF handled in section_cb and option_cb 
     153 
     154        IPSEC_SEC_UCI_CONF="${IPSEC_SEC_UCI_CONF:-${IPSEC_CONFS:-/etc}/ipsec.uci.secrets}" 
     155        ipsec_config_print_header_secret 
     156        echo >> "$IPSEC_SEC_UCI_CONF" 
     157        echo "# Certificate Secrets" >> "$IPSEC_SEC_UCI_CONF" 
     158        config_foreach "ipsec_config_add_secret_cs" "ipsec_secret_cs" 
     159        echo >> "$IPSEC_SEC_UCI_CONF" 
     160        echo "# Shared Secrets" >> "$IPSEC_SEC_UCI_CONF" 
     161        config_foreach "ipsec_config_add_secret_ss" "ipsec_secret_ss" 
     162        echo >> "$IPSEC_SEC_UCI_CONF" 
     163        echo "# XAUTH Secrets" >> "$IPSEC_SEC_UCI_CONF" 
     164        config_foreach "ipsec_config_add_secret_xs" "ipsec_secret_xs" 
     165} 
     166 
     167ipsec_config_print_header() { 
     168        cat > "$IPSEC_UCI_CONF" <<ENDHEADER 
     169# $IPSEC_UCI_CONF - UCI IPsec configuration file 
     170# 
     171# This file is automatically generated by the ipsec init script from 
     172# configuration information stored in UCI.  DO NOT EDIT THIS FILE BY HAND. 
     173ENDHEADER 
     174} 
     175 
     176ipsec_config_print_header_secret() { 
     177        cat > "$IPSEC_SEC_UCI_CONF" <<ENDHEADER 
     178# $IPSEC_SEC_UCI_CONF - UCI IPsec sensitive configuration file 
     179# 
     180# This file is automatically generated by the ipsec init script from 
     181# configuration information stored in UCI.  DO NOT EDIT THIS FILE BY HAND. 
     182ENDHEADER 
     183} 
     184 
     185ipsec_config_add_secret_cs() { 
     186        local SECTNAME="$1" 
     187 
     188        config_get "FILE" "$SECTNAME" "file" 
     189        config_get "SECRET" "$SECTNAME" "secret" 
     190 
     191        FILE="\"$FILE\"" 
     192        if [ "$SECRET" != "%prompt" ] ; then 
     193                SECRET="\"$SECRET\"" 
     194        fi 
     195 
     196        echo ": RSA $FILE $SECRET" >> "$IPSEC_SEC_UCI_CONF" 
     197} 
     198 
     199ipsec_config_add_secret_ss() { 
     200        local SECTNAME="$1" 
     201 
     202        config_get "INDICES" "$SECTNAME" "indices" 
     203        config_get "SECRET" "$SECTNAME" "secret" 
     204 
     205        echo "$INDICES : PSK \"$SECRET\"" >> "$IPSEC_SEC_UCI_CONF" 
     206} 
     207 
     208ipsec_config_add_secret_xs() { 
     209        local SECTNAME="$1" 
     210 
     211        config_get "USERNAME" "$SECTNAME" "username" 
     212        config_get "SECRET" "$SECTNAME" "secret" 
     213 
     214        echo "@$USERNAME : XAUTH \"$SECRET\"" >> "$IPSEC_SEC_UCI_CONF" 
     215} 
    36216 
    37217script_init() { 
     
    190370} 
    191371start() { 
     372        ipsec_config_convert 
    192373        script_init start "$@" 
    193374        script_command start "$@" 
     
    200381 
    201382restart() { 
     383        ipsec_config_convert 
    202384        script_init stop "$@" 
    203385        script_command stop "$@" 
Note: See TracChangeset for help on using the changeset viewer.