home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 December / PCWorld_2000-12_cd.bin / Komunikace / Comanche / plugins / apache / modules / raven / specialCases.tcl < prev   
Text File  |  2000-11-02  |  11KB  |  380 lines

  1. namespace eval ::apache1.3:: {}
  2.  
  3. proc ::apache1.3::parseSSLPassPhraseDialog {text parser dirDef xmlConf currentContainer} {
  4.     set elements [apacheparserutils::getElements $text ]
  5.     
  6.     # Take into account the exec: stuff and file can contain spaces
  7.  
  8.     set xuiObj [apacheparserutils::getOrCreateIfNotExists SSLPassPhraseDialog \
  9.             $dirDef $xmlConf $currentContainer]
  10.     switch [string tolower [lindex $elements 1]] {
  11.         builtin {
  12.         $xuiObj selectComponentByName builtin
  13.     }
  14.     default {
  15.         regexp {:(.*)$} $text match file
  16.         $xuiObj selectComponentByName exec
  17.  
  18.             # loadValue takes care of spaces and quotes
  19.         
  20.         ::apacheparserutils::loadValue [$xuiObj getComponentByName exec]  $file
  21.     }
  22.     }
  23.  
  24. }
  25.  
  26. proc ::apache1.3::dumpSSLPassPhraseDialog  { xuiObj } {
  27.     set result {SSLPassPhraseDialog }
  28.     switch [$xuiObj getSelectedComponentName] {
  29.         builtin {
  30.     append result builtin
  31.     return $result\n
  32.     } exec {
  33.         set value [[$xuiObj getComponentByName exec] getValue]
  34.             if [regexp {\ } $value] {
  35.             set value "\"$value\""
  36.         }
  37.         append result exec:
  38.         append result $value
  39.         return $result\n
  40.     }
  41.     }
  42. }
  43.  
  44. proc ::apache1.3::parseSSLMutex {text parser dirDef xmlConf currentContainer} {
  45.     set elements [apacheparserutils::getElements $text ]
  46.     
  47.     # Take into account the exec: stuff and file can contain spaces
  48.  
  49.     set xuiObj [apacheparserutils::getOrCreateIfNotExists SSLMutex \
  50.             $dirDef $xmlConf $currentContainer]
  51.     switch [string tolower [lindex $elements 1]] {
  52.         none {
  53.         $xuiObj selectComponentByName none
  54.     } sem {
  55.         $xuiObj selectComponentByName sem
  56.     } default {
  57.         regexp {:(.*)$} $text match file
  58.         $xuiObj selectComponentByName file
  59.  
  60.             # loadValue takes care of spaces and quotes
  61.         
  62.         ::apacheparserutils::loadValue [$xuiObj getComponentByName file]  $file
  63.     }
  64.     }
  65.  
  66. }
  67.  
  68. proc ::apache1.3::dumpSSLMutex  { xuiObj } {
  69.     set result {SSLMutex }
  70.     switch [$xuiObj getSelectedComponentName] {
  71.         none {
  72.     append result none
  73.     return $result\n 
  74.     } sem {
  75.     append result sem
  76.     return $result\n
  77.     } file {
  78.         set value [[$xuiObj getComponentByName file] getValue]
  79.             if [regexp {\ } $value] {
  80.             set value "\"$value\""
  81.         }
  82.         append result exec:
  83.         append result $value
  84.         return $result\n
  85.     }
  86.     }
  87. }
  88.  
  89. proc ::apache1.3::parseSSLRandomSeed {text parser dirDef xmlConf currentContainer} {
  90.     set elements [apacheparserutils::getElements $text ]
  91.     
  92.     # Take into account the exec: stuff and file can contain spaces
  93.  
  94.     set xuiObj [apacheparserutils::getOrCreateIfNotExists SSLRandomSeed \
  95.             $dirDef $xmlConf $currentContainer]
  96.     set child [$xuiObj newChild]
  97.     $xuiObj insertChild $child
  98.     ::apacheparserutils::loadValue [$child getComponentByName context] \
  99.         [lindex $elements 1]
  100.     set source [$child getComponentByName source]
  101.     switch -glob [string tolower [lindex $elements 2]] {
  102.         builtin {
  103.         $source selectComponentByName builtin
  104.     } file:* {
  105.         $source selectComponentByName file
  106.         regexp {:(.*)$} $text match file
  107.         set newElements [apacheparserutils::getElements $file]
  108.         set file [lindex $newElements 0]
  109.         set bytes [lindex $newElements 1]
  110.         
  111.             # loadValue takes care of spaces and quotes
  112.         
  113.         ::apacheparserutils::loadValue [[$source getComponentByName file] \
  114.                getComponentByName file]  $file
  115.         ::apacheparserutils::loadValue [[$source getComponentByName file] \
  116.                getComponentByName bytes]  $bytes
  117.     } exec:* {
  118.         $source selectComponentByName exec
  119.         regexp {:(.*)$} $text match program
  120.         set newElements [apacheparserutils::getElements $program]
  121.         set program [lindex $newElements 0]
  122.         set bytes [lindex $newElements 1]
  123.         
  124.             # loadValue takes care of spaces and quotes
  125.  
  126.         ::apacheparserutils::loadValue [[$source getComponentByName exec]  \
  127.                getComponentByName program] $program
  128.         ::apacheparserutils::loadValue [[$source getComponentByName exec]  \
  129.                getComponentByName bytes] $bytes
  130.     } default {
  131.         error "Should never happen in SSLRandomSeed"
  132.     }
  133.     }
  134. }
  135.  
  136. proc ::apache1.3::dumpSSLRandomSeed  { xuiObj } {
  137.     set result {}
  138.     foreach child [$xuiObj getChildren] {
  139.         append result {SSLRandomSeed }
  140.     append result [[$child getComponentByName context] getSelected]
  141.     append resul { }
  142.     set source [$child getComponentByName source]
  143.     set component [$source getSelectedComponent] 
  144.     switch [$component getName] {
  145.         builtin {
  146.             append result builtin
  147.         } file {
  148.             set value [[$component getComponentByName file] getValue]
  149.         if [regexp {\ } $value] {
  150.             set value "\"$value\""
  151.         }
  152.             append result $value
  153.         append result { }
  154.         set bytes [[$component getComponentByName bytes] getValue]
  155.         append result $bytes
  156.         append result \n
  157.         } exec {
  158.             set value [[$component getComponentByName program] getValue]
  159.         if [regexp {\ } $value] {
  160.             set value "\"$value\""
  161.         }
  162.             append result $value
  163.         append result { }
  164.         set bytes [[$component getComponentByName bytes] getValue]
  165.         append result $bytes
  166.         append result \n
  167.         
  168.         } default {
  169.             error "Should never happen. No selected SSLRandomSeed"
  170.         }
  171.     }
  172.    }
  173.    return $result
  174. }   
  175.  
  176.  
  177. proc ::apache1.3::parseSSLSessionCache {text parser dirDef xmlConf currentContainer} {
  178.     set elements [apacheparserutils::getElements $text ]
  179.     
  180.     # Take into account the exec: stuff and file can contain spaces
  181.  
  182.     set xuiObj [apacheparserutils::getOrCreateIfNotExists SSLSessionCache \
  183.             $dirDef $xmlConf $currentContainer]
  184.     switch [string tolower [lindex $elements 1]] {
  185.         none {
  186.         $xuiObj selectComponentByName none
  187.     }
  188.     default {
  189.         regexp {:(.*)$} $text match file
  190.         $xuiObj selectComponentByName dbm
  191.  
  192.             # loadValue takes care of spaces and quotes
  193.         
  194.         ::apacheparserutils::loadValue [$xuiObj getComponentByName dbm]  $file
  195.     }
  196.     }
  197.  
  198. }
  199.  
  200. proc ::apache1.3::dumpSSLSessionCache  { xuiObj } {
  201.     set result {SSLSessionCache }
  202.     switch [$xuiObj getSelectedComponentName] {
  203.         none {
  204.     append result none
  205.     return $result\n
  206.     } dbm {
  207.         set value [[$xuiObj getComponentByName dbm] getValue]
  208.             if [regexp {\ } $value] {
  209.             set value "\"$value\""
  210.         }
  211.         append result dbm:
  212.         append result $value
  213.         return $result\n
  214.     }
  215.     }
  216. }
  217.  
  218.  
  219. proc ::apache1.3::parseSSLProtocol \
  220.         {text parser dirDef xmlConf currentContainer} {
  221.     set elements [::apacheparserutils::getElements $text]
  222.     set xuiObj [apacheparserutils::getOrCreateIfNotExists options \
  223.            $dirDef $xmlConf $currentContainer]
  224.     foreach element [lrange $elements 1 end] {
  225.         set child [$xuiObj newChild]
  226.     $xuiObj insertChild $child
  227.     switch -- [string index $element 0] {
  228.             + {
  229.         [$child getComponentByName action] selectItem enable
  230.         [$child getComponentByName protocol] selectItem \
  231.                [string tolower [string range $element 1 end]]
  232.         } - {
  233.         [$child getComponentByName action] selectItem disable
  234.         [$child getComponentByName protocol] selectItem \
  235.                [string tolower [string range $element 1 end]]
  236.             } default {
  237.         [$child getComponentByName action] selectItem enable
  238.         [$child getComponentByName protocol] selectItem \
  239.                 [string tolower $element]
  240.         }
  241.     }
  242.     }
  243. }
  244.  
  245.  
  246.  
  247.  
  248. proc ::apache1.3::dumpSSLProtocol {xuiObj} {
  249.     if ![llength [set children [$xuiObj getChildren]]] {
  250.         return
  251.     }
  252.     set result {SSLProtocol }
  253.     foreach child $children {
  254.         append result { }
  255.     switch [[$child getComponentByName action] getSelected] {
  256.     enable {
  257.         append result +
  258.     } disable {
  259.         append result -
  260.     }
  261.     }
  262.     append result [[$child getComponentByName protocol] getSelected]
  263.     }
  264.     return $result\n
  265. }           
  266.  
  267.  
  268. proc ::apache1.3::parseSSLOptions \
  269.         {text parser dirDef xmlConf currentContainer} {
  270.     set elements [::apacheparserutils::getElements $text]
  271.     set xuiObj [apacheparserutils::getOrCreateIfNotExists SSLOptions \
  272.             $dirDef $xmlConf $currentContainer]
  273.     set list [$xuiObj getComponentByName rules]
  274.     [$xuiObj getComponentByName merge] setValue
  275.     foreach element [lrange $elements 1 end] {
  276.         set child [$list newChild]
  277.     $list insertChild $child
  278.     switch -- [string index $element 0] {
  279.             + {
  280.         [$child getComponentByName action] selectItem enable
  281.         [$child getComponentByName option] selectItem \
  282.         [string tolower [string range $element 1 end]]
  283.         } - {
  284.         [$child getComponentByName action] selectItem disable
  285.         [$child getComponentByName option] selectItem \
  286.         [string tolower [string range $element 1 end]]
  287.             } default {
  288.         [$xuiObj getComponentByName merge] clearValue
  289.         [$child getComponentByName action] selectItem enable
  290.         [$child getComponentByName option] selectItem \
  291.                [string tolower $element]
  292.         }
  293.     }
  294.     }
  295. }
  296.                                 
  297.  
  298.  
  299. proc ::apache1.3::dumpSSLOptions {xuiObj} {
  300.     set mergeFlag [[$xuiObj getComponentByName merge] getValue]
  301.     set list [$xuiObj getComponentByName rules]
  302.     if ![llength [set children [$list getChildren]]] {
  303.         return
  304.     }
  305.     set result {SSLOptions }
  306.     foreach child $children {
  307.         append result { }
  308.     switch [[$child getComponentByName action] getSelected] {
  309.     enable {
  310.     if $mergeFlag {
  311.         append result +
  312.     }
  313.     } disable {
  314.     if $mergeFlag {
  315.         append result -
  316.     } else {
  317.     
  318.     # If we are not merging, we do not need - (unsure)
  319.     
  320.     break
  321.     }
  322.     }
  323.     }
  324.     append result [[$child getComponentByName option] getSelected]
  325.     }
  326.     return $result\n
  327. }
  328.     
  329.                                 
  330. set old {                                            
  331.  
  332. proc ::apache1.3::parseSSLOptions \
  333.        {text parser dirDef xmlConf currentContainer} {
  334.    set elements [::apacheparserutils::getElements $text]
  335.    set xuiObj [apacheparserutils::getOrCreateIfNotExists options \
  336.           $dirDef $xmlConf $currentContainer]
  337.    foreach element [lrange $elements 1 end] {
  338.        set child [$xuiObj newChild]
  339.        $xuiObj insertChild $child
  340.        switch -- [string index $element 0] {
  341.            + {
  342.        [$child getComponentByName action] selectItem enable
  343.        [$child getComponentByName protocol]
  344.        selectItem \
  345.        [string tolower [string range $element 1 end]]
  346.        } - {
  347.        [$child getComponentByName action] selectItem disable
  348.        [$child getComponentByName protocol] selectItem \
  349.        [string tolower [string range $element 1 end]]
  350.        } default {
  351.        [$child getComponentByName action] selectItem enable
  352.        [$child getComponentByName protocol] selectItem \
  353.               [string tolower $element]
  354.        }
  355.        }
  356.    }
  357. }
  358.                              
  359.                               
  360.                                
  361. proc ::apache1.3::dumpSSLOptions {xuiObj} {
  362.     if ![llength [set children [$xuiObj getChildren]]] {
  363.         return
  364.     }
  365.     set result {SSLOptions }
  366.     foreach child $children {
  367.         append result { }
  368.     switch [[$child getComponentByName action] getSelected] {
  369.         enable {
  370.         append result +
  371.     } disable {
  372.         append result -
  373.     }
  374.     }
  375.     append result [[$child getComponentByName protocol] getSelected]
  376.     }
  377. }
  378.     
  379.     }
  380.