Guest User

Untitled

a guest
Nov 29th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "github.com/jmckaskill/goldap"
  5. "fmt"
  6. "os"
  7. )
  8.  
  9. func printer (r string) {
  10. fmt.Println("out!")
  11. fmt.Printf("%v\n", r)
  12. }
  13.  
  14. type result struct {
  15. Sn string
  16. GivenName string
  17. TelephoneNumber string
  18. }
  19.  
  20. func channel_query(db *ldap.DB, base_dn ldap.ObjectDN, ur ldap.Equal) {
  21. out := make(chan result)
  22.  
  23. go func() {
  24. err := db.SearchTree(out, base_dn, ur)
  25. if err != nil {
  26. fmt.Println(err.Error())
  27. }
  28. }()
  29. r := <- out
  30. fmt.Printf("%v\n", r)
  31. }
  32.  
  33. func slice_query(db *ldap.DB, base_dn ldap.ObjectDN, ur ldap.Equal) {
  34. out := make([]result,0)
  35.  
  36. err := db.SearchTree(&out, base_dn, ur)
  37. if err != nil {
  38. fmt.Println(err.Error())
  39. }
  40. fmt.Printf("%v\n", out)
  41. }
  42.  
  43. func func_query(db *ldap.DB, base_dn ldap.ObjectDN, ur ldap.Equal) {
  44. out := func (r result) {
  45. fmt.Printf("%v\n", r)
  46. }
  47.  
  48. err := db.SearchTree(out, base_dn, ur)
  49. if err != nil {
  50. fmt.Println(err.Error())
  51. }
  52. }
  53.  
  54. func struct_query(db *ldap.DB, base_dn ldap.ObjectDN, ur ldap.Equal) {
  55. out := result{}
  56.  
  57. err := db.SearchTree(&out, base_dn, ur)
  58. if err != nil {
  59. fmt.Println(err.Error())
  60. }
  61. fmt.Printf("%v\n", out)
  62. }
  63.  
  64.  
  65. func main () {
  66. if len(os.Args) < 2 {
  67. fmt.Println("must specify a UNI")
  68. return
  69. }
  70. uni := os.Args[1]
  71.  
  72. auth := make([]ldap.AuthMechanism,1)
  73. auth[0] = ldap.SimpleAuth{User:"",Pass:""}
  74. cfg := ldap.ClientConfig{Dial:nil,Auth:auth,TLS:nil}
  75.  
  76. db := ldap.Open("ldap://ldap.columbia.edu", &cfg)
  77. base_dn := ldap.ObjectDN("o=Columbia University, c=us")
  78. ur := ldap.Equal{Attr:"uni",Value:[]byte(uni)}
  79.  
  80. channel_query(db, base_dn, ur)
  81. slice_query(db, base_dn, ur)
  82. func_query(db, base_dn, ur)
  83. struct_query(db, base_dn, ur)
  84. }
Add Comment
Please, Sign In to add comment